/** 1.创建数据库对象 ，4个参数分别是:数据库名,版本号，数据库的描述，数据库大小 10M  */
var localDB = openDatabase('localDataBase','1.0','本地数据库',10240); 
if(!localDB){
//	alert("本地数据库创建失败");
}else{
//	alert("本地数据库创建成功#^_^#");
}
/****************************************************配备单表操作**********************************************************/
//删除表
function deletetable(){
	localDB.transaction(function(tx){
		tx.executeSql("DROP table PbdTable", [], function(tx, result){
		}, function(tx, error){
			alert('删除失败: ' + error.message);
			console.log(error.message);
		});
	});
	
	localDB.transaction(function(tx){
		tx.executeSql("DROP table PbdxdTable", [], function(tx, result){
		}, function(tx, error){
			alert('删除失败: ' + error.message);
			console.log(error.message);
		});
	});
		localDB.transaction(function(tx){
		tx.executeSql("DROP table Recycle", [], function(tx, result){
		}, function(tx, error){
			alert('删除失败: ' + error.message);
			console.log(error.message);
		});
	});
}

//获取指定的时间
function GetDateStr(AddDayCount) {
    var dd = new Date();
    dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
    var y = dd.getFullYear();
    var m = dd.getMonth()+1;//获取当前月份的日期
    if(m<10){
       m="0"+m;
	}
    var d = dd.getDate();
    return y+"-"+m+"-"+d;
}

/**删除过期表单信息信息**/
function deleteAll(){
	    localDB.transaction(function(tx){
		var sqlquerypbd = 'select F_PBDBH from PbdTable where isToDay < ?';
		tx.executeSql(sqlquerypbd,[GetDateStr(0)],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
			if(result.rows.length == 0  ){
			} else{
					var str='' ;
				for (var i = result.rows.length - 1; i > -1; i--) {
					if(i==0){
				        str += result.rows.item(i).F_PBDBH
					}else{
						str += result.rows.item(i).F_PBDBH+","
					}
				}
				  //删除今天以前的数据（详单）
					localDB.transaction(function(tx){
						tx.executeSql("delete from  PbdxdTable where F_ZBID in ("+str+")", [], function(tx, result){
//							console.log("详单删除成功"+str);
						}, function(tx, error){
						console.log('删除失败: ' + error.message);
						});
					});
					    //删除今天以前的数据（回收单）
					localDB.transaction(function(tx){
						tx.executeSql("delete from  Recycle where F_ZBID in ("+str+")", [], function(tx, result){
//								console.log("回收单删除成功"+str);
						}, function(tx, error){
							console.log('删除失败: ' + error.message);
						});
				    });
					
					       //删除今天以前的数据（配备单）
				      localDB.transaction(function(tx){
						tx.executeSql("delete from  PbdTable where F_PBDBH in ("+str+")", [], function(tx, result){
//							console.log("配备单单删除成功"+str);
						}, function(tx, error){
							console.log('删除失败: ' + error.message);
						});
					});
					str=null;
			}				
		},
		function(tx,error){console.log("查询失败");
		 }
		);
	});
}

/**创建配备单表**/
function createPbdTable(){
	if(!localDB){
	alert("本地数据库创建失败");
}else{
	//	deleteAll();
  localDB.transaction( function(tx) { 
  tx.executeSql("create table if not exists PbdTable (F_PBDH unique,F_HBC text,F_HBR  text ,F_FJJH  text ,F_HX  text ,F_CYRBM  text ,F_KFMC  text ,F_KFID  text ,F_XH  text ,F_ZT  text ,F_PBDBH  text ,HBXX  text ,HBRQ  text ,status  text ,suo text,isToDay text)", [], 
  function(tx,result){
//	 alert('创建PbdTable表成功');
	  }, 
  function(tx, error){ 
//   alert('创建PbdTable表失败:' + error.message); 
  });
  });
}

 }

/** 2.1，查询“配备单表 ”—PbdTable **/
function queryPbd(jsonArry,callBackFun){
  localDB.transaction(function(tx){
		var sqlquerypbd = 'select * from PbdTable where F_PBDH = ?';
		tx.executeSql(sqlquerypbd,[jsonArry.F_PBDH],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
			if(result.rows.length == 0  ){
						addPbdDataAll(jsonArry.F_PBDH,jsonArry.F_HBC,jsonArry.F_HBRQ,jsonArry.F_FJJH,jsonArry.F_HX,jsonArry.F_CYRBM,jsonArry.F_KFMC,jsonArry.F_KFID,jsonArry.F_XH,jsonArry.F_ZT,jsonArry.F_PBDBH,JSON.stringify(jsonArry.HBXX),"0","false",function(insertObj){
						if(insertObj==1){
//							console.log("新增成功");
							callBackFun(0);
							}
						});
			} else{
				updatePbd(JSON.stringify(jsonArry.HBXX),jsonArry.F_PBDH,function(updateObj){
					if(updateObj==0){
//						console.log("修改成功");
						callBackFun(0);
					}
				});
			}				
		},
		function(tx,error){console.log("查询失败");
		 }
		);
	});
  } 

/**查询配备单表中的数据**/
function showPbd(callBackFun){
	localDB.transaction(function(tx){
	var sql=null;
	if( getStorage('uploadType')=='hx'){
		sql = "select * from PbdTable where F_HX like '%"+getStorage("flightNo")+"%' and HBRQ = ?";
	}else{
		sql = "select * from PbdTable where F_HBC like '%"+getStorage("flightNo")+"%' and HBRQ = ?";
	}
		tx.executeSql(sql,[getStorage("dateTime")],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
		var len =  i;
			var pbdArry = new Array();
			if(result.rows.length == 0  ){
//				 console.log("没有数据");
				 callBackFun(JSON.stringify(pbdArry));
			} else{
				var pbdArry = new Array();
				for (i = result.rows.length-1; i >-1; i--) {
					pbdArry.push(result.rows.item(i));
			     }
//				 console.log("查询数据"+JSON.stringify(pbdArry));
				 callBackFun(JSON.stringify(pbdArry));
				 result.rows=null;
		   }				
		},
		function(tx,error){
//		 console.log("查询失败");
		}
		);
	});
}
 
 /**配备单新增方法**/
 function addPbdDataAll(pbdh, hbc, hbrq, fjjh, hx, cyrbm, kfmc, kfid, xh, zt, pbdbh, hbxx,status,suo,callBackFun){
	
	localDB.transaction(function(tx){
		tx.executeSql("insert into PbdTable values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ? ,?,?)", [pbdh, hbc, hbrq, fjjh, hx, cyrbm, kfmc, kfid, xh, zt, pbdbh, hbxx,getStorage("dateTime"),status,suo,GetDateStr(0)], 
		function(tx, rs){
        console.log("配备单添加成功");
          callBackFun(1);
		}, 
		function(tx, error){
			console.log(error.message);
		});
	});
}
/**表单存在时修改配备单部分字段**/
function updatePbd(hbxx,pbdh,callBackFun){
	localDB.transaction(function(tx){
		tx.executeSql("update PbdTable set HBXX = ? where F_PBDH = ?", [hbxx,pbdh], 
		function(tx, rs){
//			alert('修改数据成功');
         callBackFun(0);
		}, 
		function(tx, error){
//			alert('修改数据失败: ' + error.message);
//			console.log(error.message);
		});
	});
}
/***修改配备单状态**/
function updateXd(pbdId,zt){
	localDB.transaction(function(tx){
		tx.executeSql("update  PbdTable set status = ?  where F_PBDBH = ?", [zt,pbdId], 
		function(tx, rs){
//			alert('配备单数据修改成功');
		}, 
		function(tx, error){
//			console.log(error.message);
		});
	});
}


/************************************************创建详单表**************************************************************/
/** 2，创建“配备单详单表 ”—PbdxdTable */
function createPbdxdTable(){
		 localDB.transaction( function(tx) { 
		 tx.executeSql("create table if not exists PbdxdTable (F_ZBID TEXT,JSON TEXT)", [], 
		 function(tx,result){
			  }, 
		  function(tx, error){ 
//		   console.log('创建PbdxdTable表失败:' + error.message); 
		  });
		});
}

/** 2.1，查询“配备单表 ”—PbdxdTable 没有新增否则修改*/
function queryPbdxd(ZBID,pbdxdArry){
	 var huiArry = new Array();
	for(var i=pbdxdArry.length-1;i>-1;i--){
			var json={"F_WZID":pbdxdArry[i].F_WZID,"F_WZMC":pbdxdArry[i].F_WZMC,"F_ZJM":pbdxdArry[i].F_ZJM,"F_WZGG":pbdxdArry[i].F_WZGG,"F_JLDW":pbdxdArry[i].F_JLDW,"F_JG":pbdxdArry[i].F_JG,"F_XTTQ":"","F_CGDBSL":pbdxdArry[i].F_PBDBSL,"F_PBDDBSL":pbdxdArry[i].F_PBDBSL,"F_RKSL":"0", "F_LXSL":"1", "F_ZBID":pbdxdArry[i].F_ZBID,"F_RKBH":"0"};	
				huiArry.push(json);
		}
	localDB.transaction(function(tx){
		var sql = 'select * from PbdxdTable where F_ZBID = ?';
		tx.executeSql(sql,[ZBID],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
			if(result.rows.length == 0  ){
				console.log("详单表还没有添加数据,进行新增");
			    addPbdxdDataAll(ZBID,JSON.stringify(pbdxdArry));
				addRecycleDataAll(ZBID,0,JSON.stringify(huiArry));
			} else{
				console.log("详单已经存在，进行修改"+pbdxdArry[0].F_ZBID);
				updateXdTbleByALL(JSON.stringify(pbdxdArry),ZBID);
				updateRecycle(JSON.stringify(huiArry),ZBID);
			}	
		},
		function(tx,error){
			//alert("查询失败");
			}
		);
	});
}

/** 2.1，根据Id啊和讯配备单详单 页面显示 */
function queryPbdxdById(id,callBackFun){
//	console.log("点击查询详单");
	localDB.transaction(function(tx){
		var sql = 'select JSON from PbdxdTable where F_ZBID = ?';
		tx.executeSql(sql,[id],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
				setStorage("pbdxdArry",result.rows.item(0).JSON);
				callBackFun(JSON.parse(result.rows.item(0).JSON));
		},
		function(tx,error){
//			console.log("查询失败");
			}
		);
	});
}
	
/**2.3，添加详单数据--所有字段都添加 */
function addPbdxdDataAll(F_ZBID,ARRY){
	localDB.transaction(function(tx){
		tx.executeSql("insert into PbdxdTable values(?, ?)", [F_ZBID,ARRY], 
		function(tx, rs){
//			console.log("详单添加成");
		}, 
		function(tx, error){
//			console.log(error.message);
		});
	});
}

/**修改详单表*/
function updateXdTbleByALL(json,pbdId){
	localDB.transaction(function(tx){
		tx.executeSql("update PbdxdTable set JSON = ?  where  F_ZBID = ?", [json,pbdId], 
		function(tx, rs){
			json=null;
			console.log("详单数据修改成功");
		}, 
		function(tx, error){
			console.log(error.message);
		});
	});
}

/**单次进行修改 同时改变配备单列表的状态*/
function updateXdTble(json,pbdId){
	localDB.transaction(function(tx){
		tx.executeSql("update PbdxdTable set JSON = ?  where  F_ZBID = ?", [json,pbdId], 
		function(tx, rs){
			console.log("详单数据修改成功");
			updateXd(pbdId,1);
		}, 
		function(tx, error){
			console.log(error.message);
		});
	});
}
/**查询详单需要提交的数据**/
function selectXdLoad(id,callBackFun){
	localDB.transaction(function(tx){
	  var sql = "select JSON from PbdxdTable where F_ZBID = ?  ";
		tx.executeSql(sql,[id],
		function(tx,result){
		//先查询数据，数据为空-->从服务器读取数据写入表中
		var i;
		var pbdxdArry = new Array();
	    var list = JSON.parse(result.rows.item(0).JSON);
		for (i = list.length - 1; i > -1; i--) {
			if(list[i].F_QTSL_TDC != '0' && list[i].F_QTSL_TDC != 0){
			var json = {
				"F_ZBID":list[i].F_ZBID,
				"F_WZID": list[i].F_WZID,
				"F_CKSL_TDC": list[i].F_CKSL_TDC,
				"F_QTSL_TDC": list[i].F_QTSL_TDC,
				"F_DY_TDC": list[i].F_DY_TDC
					   };
				pbdxdArry.push(json);
			}
		}
				callBackFun(pbdxdArry);
				setStorage("loadArry",JSON.stringify(pbdxdArry));
				list=null;
			},
			function(tx,error){console.log("查询失败"+error.message);}
		);
	});							  
}

/**************************************************回收单****************************************************************/
/** 2，创建“配备回收表 ”—PbdhsTable */
function createRecycle(){
		localDB.transaction( function(tx) { 
		 tx.executeSql("create table if not exists Recycle (F_ZBID TEXT,F_RKBH,JSON TEXT)", [], 
		 function(tx,result){
			  }, 
		  function(tx, error){ 
		  });
		});
}

/** 2.1，根据Id啊和讯配备单详单 */
function queryRecycleById(id,callBackFun){
	localDB.transaction(function(tx){
		var sql = 'select * from Recycle where F_ZBID = ?';
		tx.executeSql(sql,[id],
		function(tx,result){
//		        setStorage("F_RKBH",result.rows.item(0).F_RKBH);
				setStorage("F_RKBH",result.rows.item(0).F_RKBH);
				var jsonss = result.rows.item(0).JSON;
				setStorage("RecycleArry",jsonss);
				callBackFun(JSON.parse(jsonss));
		},
		function(tx,error){console.log("查询失败");}
		);
	});
}
/**2.3，添加详单数据--所有字段都添加 */
function addRecycleDataAll(F_ZBID,type,arry){
	localDB.transaction(function(tx){
		tx.executeSql("insert into Recycle values(?,?, ?)", [F_ZBID,type,arry], 
		function(tx, rs){
			arry=null;
			console.log('添加回收成功');
		}, 
		function(tx, error){
			console.log(error.message);
		});
	});
}

/**修改回收单的回收数量*/
function updateRecycle(json,pbdId){
	localDB.transaction(function(tx){
		tx.executeSql("update Recycle set JSON = ?  where  F_ZBID = ?", [json,pbdId], 
		function(tx, rs){
			json=null;
//			console.log("详单数据修改成功");
		}, 
		function(tx, error){
//			console.log(error.message);
		});
	});
}

/**修改回收单的新增回收ID*/
function updateRecycleId(zbid,pbdId){
	localDB.transaction(function(tx){
		tx.executeSql("update Recycle set F_RKBH = ?  where  F_ZBID = ?", [zbid,pbdId], 
		function(tx, rs){
//			console.log("详单数据修改成功");
		}, 
		function(tx, error){
//			console.log(error.message);
		});
	});
}

/**查询详单需要提交的数据**/
function selectRecycleLoad(id,hbh,rq,callBackFun){
	rq=rq.replace(/[^0-9]/ig, "/")+" 0:00:00"; 
	console.log(rq);
	
    localDB.transaction(function(tx){
		var sql1 = "select F_FJJH,F_HX from PbdTable where F_HBC = ? and F_HBR = ?";
        tx.executeSql(sql1, [hbh,rq], function(tx, result){
            //先查询数据，数据为空-->从服务器读取数据写入表中
            var list = result.rows.item(0);
			setStorage("F_FJJH",list.F_FJJH);
			setStorage("F_HDBH",list.F_HX);
        }, function(tx, error){
            console.log("查询失败" + error.message);
        });
		
        var sql = "select JSON from Recycle where F_ZBID = ?";
        tx.executeSql(sql, [id], function(tx, result){
            //先查询数据，数据为空-->从服务器读取数据写入表中
            var i;
            var str = '';
            var list = JSON.parse(result.rows.item(0).JSON);
            for (i = list.length - 1; i > -1; i--) {
                if (list[i].F_RKSL != '0' && list[i].F_RKSL != 0) {
                    str += "<row RowState='Added' F_WZID='" + list[i].F_WZID + "' F_WZMC='" + list[i].F_WZMC + "' F_ZJM='" + list[i].F_ZJM + "' F_WZGG='" + list[i].F_WZGG + "' F_JLDW='" + list[i].F_JLDW + "' F_CGDBSL='" + list[i].F_CGDBSL + "' F_JG='" + list[i].F_JG + "' F_XTTQ='" + list[i].F_XTTQ + "' F_PBDDBSL='" + list[i].F_PBDDBSL + "' F_RKSL='" + list[i].F_RKSL + "' F_LXSL='" + list[i].F_RKSL + "'/>";
                }
            }
            callBackFun("<detail>" + str + "</detail>");
        }, function(tx, error){
            console.log("查询失败" + error.message);
        });
    });
}
